PythonでWord Cloudを作ってみた(和文編) | 您所在的位置:网站首页 › python ghostscript › PythonでWord Cloudを作ってみた(和文編) |
ホームPythonでワードクラウドPythonでWord Cloudを作ってみた(和文編)
PythonでWord Cloudを作ってみた(和文編)
Pythonでワードクラウドを作ります。ベースになる文章を和文にしてみます。 目次 MeCabとwordcloudモジュールで日本語のワードクラウドを作る「こころ」をワードクラウドにしてみた MeCabとwordcloudモジュールで日本語のワードクラウドを作るPythonではwordcloudモジュールで簡単にワードクラウドが作れます。 ただしちょっと問題なのは、単語の区切りが空白文字(スペースなど)なところです。日本語はスペースで単語を区切りませんからね。 ということは、何らかの手段で文章から単語を切り出さなければならないわけです。 そこで今回はMeCabというツールを使用します。これは形態素解析という文章を解析するためのツールです。MeCabを使用するためにはMeCabとMeCabのPythonバインディングをインストールする必要があります。MeCabは 公式サイト などから、 Pythonバインディング はpipでインストールできます。 「こころ」をワードクラウドにしてみたkokoro.txtという青空文庫からダウンロードしたテキストファイルから、ワードクラウドを作ってみます。テキストファイルは、文字コードをutf-8に変換しておいてください。 import MeCab from matplotlib import pyplot as plt from wordcloud import WordCloud # テキストファイル読み込み with open('kokoro.txt', mode='rt', encoding='utf-8') as fi: source_text = fi.read() # MeCabの準備 tagger = MeCab.Tagger() tagger.parse('') node = tagger.parseToNode(source_text) # 名詞を取り出す word_list = [] while node: word_type = node.feature.split(',')[0] if word_type == '名詞': word_list.append(node.surface) node = node.next # リストを文字列に変換 word_chain = ' '.join(word_list) # ワードクラウド作成 W = WordCloud(width=640, height=480, background_color='white', colormap='bone', font_path='C:\Windows\Fonts\yumin.ttf').generate(word_chain) plt.imshow(W) plt.axis('off') plt.show()まず、テキストファイルを読み込みます。open/closeではなくてwithを使うとファイルのクローズ忘れがなくなるので便利です。 MeCab.Tagger()を呼び出してオブジェクトを作ります。 tagger.parse('') というのは、MeCabのエラー避けです。 tagger.parseToNode() にテキストを渡してオブジェクトを作ります。テキストが分解されてこのオブジェクトに入るような感じになるのですが、1つ呼び出したら次、次を呼び出したらその次、という感じで中身を取り出していきます。(実際にはポインタになってるらしいです。) というわけで、whileループで1つずつオブジェクトを処理していきます。今回は、品詞が名詞のものだけを取り出して、リストに追加していきます。 ' '.join() は、スペースを区切り文字にしてリストの全要素を結合するという処理です。 あとはできあがったテキストをwordcloudオブジェクトに渡して、matplotlibで描画します。パラメーターなどは こちら を参照してください。このときfont_pathに日本語フォントを指定しないと、豆腐が表示されます。 というわけでできあがったのがこちらです。 何の小説かわかりますか? PythonでWord Cloudを作ってみた(単語を予め分けておく編) Pythonで画像の形に合わせたワードクラウドを作ってみた公開日 2018-05-09 広告 Pythonでワードクラウドカテゴリの投稿 PythonでWord Cloudを作ってみた PythonでWord Cloudを作ってみた(単語を予め分けておく編) PythonでWord Cloudを作ってみた(和文編) Pythonで画像の形に合わせたワードクラウドを作ってみた Pythonで画像の色に合わせたワードクラウドを作ってみた PythonのWord Cloudで表示しない単語を増やす |
CopyRight 2018-2019 实验室设备网 版权所有 |